package com.syf.kit.core.dao.sql;

import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Author: fanxiaodong
 * @Date: 2022-12-16 15:43
 * @Description: 分页
 */
public class JdbcPageInfo<T> extends PageInfo {

    /**
     * 构造方法
     */
    public JdbcPageInfo() {
    }


    public JdbcPageInfo(int pageSize) {
        this.setPageNum(1);
        this.setPageSize(pageSize);
    }

    /**
     * 构造方法
     *
     * @param pageNum    当前页数
     * @param totalCount 总条数
     */
    public JdbcPageInfo(int pageNum, int totalCount) {
        this.setPageNum(pageNum);
        this.setTotal(totalCount);
        this.setPages(getTotalPageCount());
    }

    /**
     * 构造方法
     *
     * @param pageNum    当前页数
     * @param pageSize   每页条数
     * @param totalCount 总条数
     */
    public JdbcPageInfo(int pageNum, int pageSize, int totalCount) {
        this.setPageNum(pageNum);
        this.setPageSize(pageSize);
        this.setTotal(totalCount);
        this.setPages(getTotalPageCount());
    }

    /**
     * 构造方法
     *
     * @param pageNum    当前页数
     * @param pageSize   每页条数
     * @param totalCount 总条数
     * @param data       分页查询数据
     */
    public JdbcPageInfo(int pageNum, int pageSize, int totalCount, List<T> data) {
        this.setPageNum(pageNum);
        this.setPageSize(pageSize);
        this.setTotal(totalCount);
        this.setPages(getTotalPageCount());
        this.setList(data);
    }

    /**
     * 获取总页数
     */
    private int getTotalPageCount() {
        if (this.getTotal() % this.getPageSize() == 0) {
            return (int) (this.getTotal() / this.getPageSize());
        } else {
            return (int) (this.getTotal() / this.getPageSize() + 1);
        }
    }
}
